#ifndef NV_H
#define NV_H

#include <QWidget>
#include <QtNetwork/QTcpSocket>
#include <nv_network.h>

#include <cryptography.h>


namespace Ui {
    class NV;
}

class NV : public QWidget
{
    Q_OBJECT

public:
    explicit NV(QWidget *parent = 0);
    ~NV();

    cryptography *session;
    //int recv_msg();

private:
    Ui::NV *ui;
    nv_network *client;
    QString Vote_hash;

   //Funciones de la pantalla de votacion
    //void conex_ballot();
    void show_Prop(QString &Ballot);
    QString shift_String(QString &msg);
    void default_ballot(QString &Ballot);
    void opc2_ballot(QString &Ballot);
    void opc3_ballot(QString &Ballot);
    void opc4_ballot(QString &Ballot);
    void opc5_ballot(QString &Ballot);


    bool vote_Cast(QString vote, QString PVID1, QString PVID2);
    int show_msg(QString message,QString info ="",QString detail = "", QMessageBox::Icon icono = QMessageBox::Information,QMessageBox::StandardButtons buttons=QMessageBox::Ok);

    QString multi_line(QString data, int width);

private slots:
    //Slots de la pantalla de ingreso de usuario
    void conex_ing_usuario();


    // Slots de la pantalla de ingreso del pin
    void conex_pin();
    void borrar_pin();
    void aceptar_pin();
    void up1_pin();
    void up2_pin();
    void up3_pin();
    void up4_pin();
    void up5_pin();
    void down1_pin();
    void down2_pin();
    void down3_pin();
    void down4_pin();
    void down5_pin();



    //Slots de la pantalla de votacion
    void izquierda();
    void derecha();
    void opc1();
    void opc2();
    void opc3();
    void opc4();
    void opc5();

    //Slots de la pantalla de configuracion
    void conex_config();
    void config_cancelar();
    void config_aceptar();
    void config_interface();
    void config_check_pin();

};

#endif // NV_H
